package com.huirui.server.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 数据源配置属性类
 * 用于绑定配置文件中以 "huirui.datasource" 为前缀的配置项
 * 包含 MySQL 和 Redis 的核心连接信息
 */
@Data // Lombok 注解，自动生成 getter、setter、toString、equals 和 hashCode 等方法
@Component // 标记为 Spring 组件，使其能被容器扫描并管理
@ConfigurationProperties(prefix = "huirui.datasource") // 绑定配置文件中指定前缀的配置
public class DatasourceProperties {
    /**
     * MySQL 数据库服务端 IP 地址
     * 注意："Ip" 应统一为 "IP"（大写），符合规范写法
     */
    private String mysqlIp;
    /**
     * MySQL 数据库服务端口号
     * 默认值通常为 3306，若数据库配置了非默认端口需对应修改
     */
    private Integer mysqlPort;
    /**
     * 访问 MySQL 数据库的用户名
     * 需拥有目标数据库的访问权限（如 root 或自定义用户）
     * 注意："UserName" 应统一为 "Username"（驼峰命名规范）
     */
    private String mysqlUserName;
    /**
     * 访问 MySQL 数据库的密码
     * 与用户名对应，用于身份验证（若为空则表示无密码）
     */
    private String mysqlPassword;
    /**
     * Redis 服务器连接地址
     * 可以是 IP 地址（如 127.0.0.1）或域名（如redis-server.com）
     * 注意：通常 Redis 连接地址使用 host（主机名）而非 url，url 一般包含协议等更多信息
     */
    private String redisIp;
    /**
     * Redis 服务器端口号
     * 默认值通常为 6379，若 Redis 配置了非默认端口需对应修改
     */
    private Integer redisPort;
    /**
     * 访问 Redis 的密码
     * 若 Redis 未设置密码则为空，否则需填写配置的密码（对应 requirepass 配置）
     */
    private String redisPassword;
    /**
     * 数据库名称
     */
    private String database;
}

